1. Technical Field
The invention is useful in Code Division Multiple Access communications systems employing orthogonal codes.
2. Related Art and Other Considerations
The term Code Division Multiple Access (CDMA) refers to a method by which multiple transmitting stations (e.g., mobile phones) can communicate their independent data streams to a common receiver (e.g., a cellular base station receiver). The communication of multiple data streams from a common transmitter (i.e., a cellular base station) to a plurality of receivers (i.e., different mobile phones) by Code Division is perhaps more properly referred to as Code Division Multiplex. However, for sake of simplicity the two terms Code Division Multiple Access and Code Division Multiplex will herein be regarded as equivalent. Thus CDMA will be used as a term of description for both the uplink and the downlink, even though the downlink may be more accurately described as Code Division Multiplex (CDM).
The use of orthogonal Walsh codes in communications systems is well known. The Code Division Multiple Access system known as IS59 uses Walsh codes of length 64 to scramble signals transmitted by a cellular base station to different mobile stations, the orthogonality of the codes reducing interference between signals intended for different mobiles. The IS95 return link uses all 64, length-64 Walsh codes in every mobile station to encode 6-bit data blocks, the different mobile transmissions being rendered unlike by the use of different scrambling sequences. This return link or uplink use of the Walsh codes does not attempt to make different signals orthogonal, but rather is a form of error correction coding called (64,6) orthogonal block encoding. See, for example, Garg, Vijay K. et al., Applications of CDMA in Wireless/Personal Communications, Prentice Hall (1997), which is incorporated herein by reference.
The wideband CDMA cellular system known as UMPTS also uses orthogonal Walsh codes to discriminate between different base-to-mobile links. In this case, the orthogonal codes are not of a fixed length, but depend on the datarate of a particular link. Nevertheless, signals of different code length and datarate remain nominally orthogonal to each other.
For example, consider two Walsh codes of length 16, the first code being 1111111100000000 and the second code being 1100110000110011. The first code may be used to spread a first signal by multiplying each symbol to be transmitted by the code and transmitting the resulting sixteen chips. The second code may be used to spread a different datastream. The two spread signals are nominally orthogonal as the first code and the second code differ in as many chip positions as they agree, resulting in zero correlation.
However, the second code is also orthogonal to the first code even if only the first or last eight chips of it are considered, as within the first eight chips the second code agrees and disagrees with the first code's first eight chips in half the chip positions. The same is true for the second eight chips. Therefore a first data symbol may be spread using the first eight chips and a second data symbol may be spread with the second eight chips while retaining orthogonality with the first code. This process of subdivision may continue, as the first four chips of the second code are also orthogonal to the first four chips of the first code. The subdivision to two chip codes however, in the particular example of the two codes mentioned in the preceding paragraph, does not retain orthogonality. However, another Walsh code, 0101010101010101 can be fractured down to length two chip codes while retaining orthogonality with the first code. Codes which can be fractured into shorter codes are called variable length orthogonal codes.
TABLE 1Walsh Codes of Length 16111111111111111111111111000000001111000011110000111100000000111111001100110011001100110000110011110000111100001111000011001111001010101010101010101010101001010110100101101001011010010101011010100110011001100110010110100101101001011001101001
Table 1 shows the complete set of Walsh codes having length 16. In the set of Table 1, every code differs from every other code in exactly half its bit positions. Moreover, the last eight codes may be split into codes of half the length while remaining orthogonal to the first eight codes. When the codes are split, there are only four distinct codes that arise in pairs. These four distinct length-8 codes may also be split into length four codes, of which there are two distinct codes, 1010 and 1001. These are also orthogonal to the first eight codes of the original set of sixteen codes. Finally, these codes may be split to give a single length-2 code 10 which remains orthogonal to the first eight, length-sixteen codes.
Thus, as summarized above, variable-length orthogonal codes are produced by splitting an N×N Walsh-Hadamard code matrix both horizontally and vertically to obtain an N/2×N/2 matrix of half-length codes which are each still orthogonal to the original length-N codes. The splitting process may continue to produce successively shorter codes, capable of carrying successively higher data rates in an orthogonal code-division multiple access system.
There is only one such Walsh-Hadamard code set, so in order to avoid confusion between signals in adjacent base station areas, i.e. cells, the Walsh code set can be differently scrambled for different base stations by combining an overall scrambling code with all members of the set. Such scrambling does not destroy the mutual orthogonality of codes within the set. U.S. Pat. No. 5,550,809 to Bottomley and Dent, incorporated herein by reference, discloses optimum scrambling codes for rendering the scrambled Walsh code sets maximally unlike. When two Walsh sets are so scrambled, no code from one set is the same as any code in a differently scrambled set.
There are other ways to render two orthogonal code sets different however, that allow the differently scrambled sets to contain common codes, if such should have utility in a given application. For example, in a satellite system, it can be advantageous to reserve one code in all beams (cells) to be a pilot code to provide a coherent reference, and it is useful if the pilot code is the same code in all beams so that constructive addition occurs at the edge of two beams rather than inter-beam interference. Another application may be when it is desired to transmit the same signal to the same mobile station from two base stations operating in space diversity.
A technique used herein for scrambling an orthogonal code set while retaining one or more codes in common is to permute columns. With reference to the above code set of length sixteen, it may be seen that the first code comprised only of ones (1) is unchanged under any permutation of columns. Likewise, both the first and the second code remain unchanged under any permutation of the first eight columns and any permutation of the second eight columns. For example, the code set of Table 2 can be obtained by permuting columns (and recording the codes as necessary).
The code set of Table 2 may also be produced by rotating the length-fifteen maximum length sequence 0011101100101 and appending a first row and first column of ones (1). (The usual notation for a maximum length sequence is the complement of this, in which case a column of zeros should be added, obtaining a complementary code set. Either the code set or its complement may be used with equal effect.) Code sets produced by starting with different maximum length sequences are maximally different in all but their common member, the all ones (1) code.
TABLE 21111111111111111100001110110010111000011101100101010000111011001110100001110110010101000011101101001010000111011110010100001110111100101000011101011001010000111110110010100001111101100101000011111011001010000101110110010100010011101100101001000111011001010
It will be realized however that the above variant of the orthogonal code set cannot be split down the middle to produce half-length codes that remain orthogonal, due to there being no longer any guarantee of 50% ones (1) and 50% zeros (0), in the first eight chips. Problematically, therefore these orthogonal code sets do not form variable length orthogonal code sets.
What is needed therefore, and an object of the present invention, are systems and techniques which afford greater choice of orthogonal code sets for minimizing interference between CDMA signals.